﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace ElectronicCommerce.Framework.ServiceModel.WCF.BindingMessage
{

    /// <remarks/>
    [System.SerializableAttribute()]
    [XmlRoot("binding")]
    public class WSHttpBindingMsg
    {
        public WSHttpBindingMsg()
        {
            System.ServiceModel.WSHttpBinding binding = new System.ServiceModel.WSHttpBinding();
            this.maxBufferPoolSize = binding.MaxBufferPoolSize;
            this.maxReceivedMessageSize = binding.MaxReceivedMessageSize;
            this.allowCookies = binding.AllowCookies;
            this.bypassProxyOnLocal = binding.BypassProxyOnLocal;
            this.hostNameComparisonMode = (WSHttpBindingMsgHostNameComparisonMode)binding.HostNameComparisonMode;
            this.messageEncoding = (WSHttpBindingMsgMessageEncoding)binding.MessageEncoding;
            this.transactionFlow = binding.TransactionFlow;
            this.useDefaultWebProxy = binding.UseDefaultWebProxy;
        }

        private WSHttpBindingMsgReaderQuotas readerQuotasField;
        private WSHttpBindingMsgReliableSession reliableSessionField;
        private WSHttpBindingMsgSecurity securityField;

        private bool allowCookiesField;

        private bool allowCookiesFieldSpecified;

        private bool bypassProxyOnLocalField;

        private bool bypassProxyOnLocalFieldSpecified;

        private bool transactionFlowField;

        private bool transactionFlowFieldSpecified;

        private WSHttpBindingMsgHostNameComparisonMode hostNameComparisonModeField;

        private bool hostNameComparisonModeFieldSpecified;

        private long maxBufferPoolSizeField;

        private bool maxBufferPoolSizeFieldSpecified;

        private long maxReceivedMessageSizeField;

        private bool maxReceivedMessageSizeFieldSpecified;

        private WSHttpBindingMsgMessageEncoding messageEncodingField;

        private bool messageEncodingFieldSpecified;

        private string proxyAddressField;

        private string textEncodingField;

        private bool useDefaultWebProxyField;

        private bool useDefaultWebProxyFieldSpecified;

        private string nameField;

        private string closeTimeoutField;

        private string openTimeoutField;

        private string receiveTimeoutField;

        private string sendTimeoutField;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        /// <remarks/>
        /// 
        [System.Xml.Serialization.XmlElementAttribute("readerQuotas", typeof(WSHttpBindingMsgReaderQuotas))]
        public WSHttpBindingMsgReaderQuotas readerQuotas
        {
            get
            {
                return this.readerQuotasField;
            }
            set
            {
                this.readerQuotasField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("reliableSession", typeof(WSHttpBindingMsgReliableSession))]
        public WSHttpBindingMsgReliableSession reliableSession
        {
            get
            {
                return this.reliableSessionField;
            }
            set
            {
                this.reliableSessionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("security", typeof(WSHttpBindingMsgSecurity))]
        public WSHttpBindingMsgSecurity security
        {
            get
            {
                return this.securityField;
            }
            set
            {
                this.securityField = value;
            }
        }



        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool allowCookies
        {
            get
            {
                return this.allowCookiesField;
            }
            set
            {
                this.allowCookiesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool allowCookiesSpecified
        {
            get
            {
                return this.allowCookiesFieldSpecified;
            }
            set
            {
                this.allowCookiesFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool bypassProxyOnLocal
        {
            get
            {
                return this.bypassProxyOnLocalField;
            }
            set
            {
                this.bypassProxyOnLocalField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool bypassProxyOnLocalSpecified
        {
            get
            {
                return this.bypassProxyOnLocalFieldSpecified;
            }
            set
            {
                this.bypassProxyOnLocalFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool transactionFlow
        {
            get
            {
                return this.transactionFlowField;
            }
            set
            {
                this.transactionFlowField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool transactionFlowSpecified
        {
            get
            {
                return this.transactionFlowFieldSpecified;
            }
            set
            {
                this.transactionFlowFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public WSHttpBindingMsgHostNameComparisonMode hostNameComparisonMode
        {
            get
            {
                return this.hostNameComparisonModeField;
            }
            set
            {
                this.hostNameComparisonModeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool hostNameComparisonModeSpecified
        {
            get
            {
                return this.hostNameComparisonModeFieldSpecified;
            }
            set
            {
                this.hostNameComparisonModeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public long maxBufferPoolSize
        {
            get
            {
                return this.maxBufferPoolSizeField;
            }
            set
            {
                this.maxBufferPoolSizeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxBufferPoolSizeSpecified
        {
            get
            {
                return this.maxBufferPoolSizeFieldSpecified;
            }
            set
            {
                this.maxBufferPoolSizeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public long maxReceivedMessageSize
        {
            get
            {
                return this.maxReceivedMessageSizeField;
            }
            set
            {
                this.maxReceivedMessageSizeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxReceivedMessageSizeSpecified
        {
            get
            {
                return this.maxReceivedMessageSizeFieldSpecified;
            }
            set
            {
                this.maxReceivedMessageSizeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public WSHttpBindingMsgMessageEncoding messageEncoding
        {
            get
            {
                return this.messageEncodingField;
            }
            set
            {
                this.messageEncodingField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool messageEncodingSpecified
        {
            get
            {
                return this.messageEncodingFieldSpecified;
            }
            set
            {
                this.messageEncodingFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string proxyAddress
        {
            get
            {
                return this.proxyAddressField;
            }
            set
            {
                this.proxyAddressField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string textEncoding
        {
            get
            {
                return this.textEncodingField;
            }
            set
            {
                this.textEncodingField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool useDefaultWebProxy
        {
            get
            {
                return this.useDefaultWebProxyField;
            }
            set
            {
                this.useDefaultWebProxyField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool useDefaultWebProxySpecified
        {
            get
            {
                return this.useDefaultWebProxyFieldSpecified;
            }
            set
            {
                this.useDefaultWebProxyFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string closeTimeout
        {
            get
            {
                return this.closeTimeoutField;
            }
            set
            {
                this.closeTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string openTimeout
        {
            get
            {
                return this.openTimeoutField;
            }
            set
            {
                this.openTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string receiveTimeout
        {
            get
            {
                return this.receiveTimeoutField;
            }
            set
            {
                this.receiveTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string sendTimeout
        {
            get
            {
                return this.sendTimeoutField;
            }
            set
            {
                this.sendTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class WSHttpBindingMsgReaderQuotas
    {
        public WSHttpBindingMsgReaderQuotas()
        {
            System.ServiceModel.WSHttpBinding binding = new System.ServiceModel.WSHttpBinding();
            this.maxArrayLength = binding.ReaderQuotas.MaxArrayLength;
            this.maxBytesPerRead = binding.ReaderQuotas.MaxBytesPerRead;
            this.maxDepth = binding.ReaderQuotas.MaxDepth;
            this.maxNameTableCharCount = binding.ReaderQuotas.MaxNameTableCharCount;
            this.maxStringContentLength = binding.ReaderQuotas.MaxStringContentLength;
        }

        private int maxDepthField;

        private bool maxDepthFieldSpecified;

        private int maxStringContentLengthField;

        private bool maxStringContentLengthFieldSpecified;

        private int maxArrayLengthField;

        private bool maxArrayLengthFieldSpecified;

        private int maxBytesPerReadField;

        private bool maxBytesPerReadFieldSpecified;

        private int maxNameTableCharCountField;

        private bool maxNameTableCharCountFieldSpecified;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxDepth
        {
            get
            {
                return this.maxDepthField;
            }
            set
            {
                this.maxDepthField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxDepthSpecified
        {
            get
            {
                return this.maxDepthFieldSpecified;
            }
            set
            {
                this.maxDepthFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxStringContentLength
        {
            get
            {
                return this.maxStringContentLengthField;
            }
            set
            {
                this.maxStringContentLengthField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxStringContentLengthSpecified
        {
            get
            {
                return this.maxStringContentLengthFieldSpecified;
            }
            set
            {
                this.maxStringContentLengthFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxArrayLength
        {
            get
            {
                return this.maxArrayLengthField;
            }
            set
            {
                this.maxArrayLengthField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxArrayLengthSpecified
        {
            get
            {
                return this.maxArrayLengthFieldSpecified;
            }
            set
            {
                this.maxArrayLengthFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxBytesPerRead
        {
            get
            {
                return this.maxBytesPerReadField;
            }
            set
            {
                this.maxBytesPerReadField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxBytesPerReadSpecified
        {
            get
            {
                return this.maxBytesPerReadFieldSpecified;
            }
            set
            {
                this.maxBytesPerReadFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxNameTableCharCount
        {
            get
            {
                return this.maxNameTableCharCountField;
            }
            set
            {
                this.maxNameTableCharCountField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxNameTableCharCountSpecified
        {
            get
            {
                return this.maxNameTableCharCountFieldSpecified;
            }
            set
            {
                this.maxNameTableCharCountFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class WSHttpBindingMsgReliableSession
    {
        public WSHttpBindingMsgReliableSession()
        {
            System.ServiceModel.WSHttpBinding binding = new System.ServiceModel.WSHttpBinding();
            this.enabledField = binding.ReliableSession.Enabled;
            this.ordered = binding.ReliableSession.Ordered;
        }

        private bool enabledField;

        private bool enabledFieldSpecified;

        private bool orderedField;

        private bool orderedFieldSpecified;

        private string inactivityTimeoutField;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool enabled
        {
            get
            {
                return this.enabledField;
            }
            set
            {
                this.enabledField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool enabledSpecified
        {
            get
            {
                return this.enabledFieldSpecified;
            }
            set
            {
                this.enabledFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ordered
        {
            get
            {
                return this.orderedField;
            }
            set
            {
                this.orderedField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool orderedSpecified
        {
            get
            {
                return this.orderedFieldSpecified;
            }
            set
            {
                this.orderedFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string inactivityTimeout
        {
            get
            {
                return this.inactivityTimeoutField;
            }
            set
            {
                this.inactivityTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class WSHttpBindingMsgSecurity
    {
        public WSHttpBindingMsgSecurity()
        {
            System.ServiceModel.WSHttpBinding binding = new System.ServiceModel.WSHttpBinding();
            this.mode = (WSHttpBindingMsgSecurityMode)binding.Security.Mode;
        }

        private WSHttpBindingMsgSecurityMessage securityMessageField;

        private WSHttpBindingMsgSecurityTransport securityTransportField;

        private WSHttpBindingMsgSecurityMode modeField;

        private bool modeFieldSpecified;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("message", typeof(WSHttpBindingMsgSecurityMessage))]
        public WSHttpBindingMsgSecurityMessage message
        {
            get
            {
                return this.securityMessageField;
            }
            set
            {
                this.securityMessageField = value;
            }
        }

        [System.Xml.Serialization.XmlElementAttribute("transport", typeof(WSHttpBindingMsgSecurityTransport))]
        public WSHttpBindingMsgSecurityTransport transport
        {
            get
            {
                return this.securityTransportField;
            }
            set
            {
                this.securityTransportField = value;
            }
        }



        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public WSHttpBindingMsgSecurityMode mode
        {
            get
            {
                return this.modeField;
            }
            set
            {
                this.modeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool modeSpecified
        {
            get
            {
                return this.modeFieldSpecified;
            }
            set
            {
                this.modeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class WSHttpBindingMsgSecurityMessage
    {
        public WSHttpBindingMsgSecurityMessage()
        {
            System.ServiceModel.WSHttpBinding binding = new System.ServiceModel.WSHttpBinding();

            this.clientCredentialType = (WSHttpBindingMsgSecurityMessageClientCredentialType)binding.Security.Message.ClientCredentialType;
            this.establishSecurityContext = binding.Security.Message.EstablishSecurityContext;
            this.negotiateServiceCredential = binding.Security.Message.NegotiateServiceCredential;
        }

        private bool establishSecurityContextField;

        private bool establishSecurityContextFieldSpecified;

        private WSHttpBindingMsgSecurityMessageClientCredentialType clientCredentialTypeField;

        private bool clientCredentialTypeFieldSpecified;

        private bool negotiateServiceCredentialField;

        private bool negotiateServiceCredentialFieldSpecified;

        private string algorithmSuiteField;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool establishSecurityContext
        {
            get
            {
                return this.establishSecurityContextField;
            }
            set
            {
                this.establishSecurityContextField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool establishSecurityContextSpecified
        {
            get
            {
                return this.establishSecurityContextFieldSpecified;
            }
            set
            {
                this.establishSecurityContextFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public WSHttpBindingMsgSecurityMessageClientCredentialType clientCredentialType
        {
            get
            {
                return this.clientCredentialTypeField;
            }
            set
            {
                this.clientCredentialTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool clientCredentialTypeSpecified
        {
            get
            {
                return this.clientCredentialTypeFieldSpecified;
            }
            set
            {
                this.clientCredentialTypeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool negotiateServiceCredential
        {
            get
            {
                return this.negotiateServiceCredentialField;
            }
            set
            {
                this.negotiateServiceCredentialField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool negotiateServiceCredentialSpecified
        {
            get
            {
                return this.negotiateServiceCredentialFieldSpecified;
            }
            set
            {
                this.negotiateServiceCredentialFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string algorithmSuite
        {
            get
            {
                return this.algorithmSuiteField;
            }
            set
            {
                this.algorithmSuiteField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum WSHttpBindingMsgSecurityMessageClientCredentialType
    {

        /// <remarks/>
        None,

        /// <remarks/>
        Windows,

        /// <remarks/>
        UserName,

        /// <remarks/>
        Certificate,

        /// <remarks/>
        IssuedToken,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class WSHttpBindingMsgSecurityTransport
    {
        public WSHttpBindingMsgSecurityTransport()
        {
            System.ServiceModel.WSHttpBinding binding = new System.ServiceModel.WSHttpBinding();
            this.clientCredentialType = (WSHttpBindingMsgSecurityTransportClientCredentialType)binding.Security.Transport.ClientCredentialType;
            this.proxyCredentialType = (WSHttpBindingMsgSecurityTransportProxyCredentialType)binding.Security.Transport.ProxyCredentialType;
        }

        private WSHttpBindingMsgSecurityTransportClientCredentialType clientCredentialTypeField;

        private bool clientCredentialTypeFieldSpecified;

        private WSHttpBindingMsgSecurityTransportProxyCredentialType proxyCredentialTypeField;

        private bool proxyCredentialTypeFieldSpecified;

        private string realmField;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public WSHttpBindingMsgSecurityTransportClientCredentialType clientCredentialType
        {
            get
            {
                return this.clientCredentialTypeField;
            }
            set
            {
                this.clientCredentialTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool clientCredentialTypeSpecified
        {
            get
            {
                return this.clientCredentialTypeFieldSpecified;
            }
            set
            {
                this.clientCredentialTypeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public WSHttpBindingMsgSecurityTransportProxyCredentialType proxyCredentialType
        {
            get
            {
                return this.proxyCredentialTypeField;
            }
            set
            {
                this.proxyCredentialTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool proxyCredentialTypeSpecified
        {
            get
            {
                return this.proxyCredentialTypeFieldSpecified;
            }
            set
            {
                this.proxyCredentialTypeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string realm
        {
            get
            {
                return this.realmField;
            }
            set
            {
                this.realmField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum WSHttpBindingMsgSecurityTransportClientCredentialType
    {

        /// <remarks/>
        None,

        /// <remarks/>
        Basic,

        /// <remarks/>
        Digest,

        /// <remarks/>
        Ntlm,

        /// <remarks/>
        Windows,

        /// <remarks/>
        Certificate,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum WSHttpBindingMsgSecurityTransportProxyCredentialType
    {

        /// <remarks/>
        None,

        /// <remarks/>
        Basic,

        /// <remarks/>
        Digest,

        /// <remarks/>
        Ntlm,

        /// <remarks/>
        Windows,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum WSHttpBindingMsgSecurityMode
    {

        /// <remarks/>
        None,

        /// <remarks/>
        Transport,

        /// <remarks/>
        Message,

        /// <remarks/>
        TransportWithMessageCredential,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum WSHttpBindingMsgHostNameComparisonMode
    {

        /// <remarks/>
        StrongWildcard,

        /// <remarks/>
        Exact,

        /// <remarks/>
        WeakWildcard,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum WSHttpBindingMsgMessageEncoding
    {

        /// <remarks/>
        Text,

        /// <remarks/>
        Mtom,
    }
}
